草庐IT

c++ - QML Qt openUrlExternally

全部标签

c++ - 使用类型转换将 C 库包装在 C++ 类中

我正在慢慢学习成为一名更好的C++程序员,目前我正在讨论为C库实现包装器的最佳方法。该库是一种压缩文件格式的包装器,可以存储各种类型的标签(char*、char、double、float、int32_t)。类型存储为uint8_t*并且有许多辅助方法可以将这些标签转换为正确的类型。例如:chartag2char(constuint8_t*v);char*tag2string(constuint8_t*v);uint32_ttag2int(constuint8_t*v);等等。我在模板方面没有太多经验,但是否值得以类似于boostprogramoptions的方式将这些方法包装在模板函数

c++ - 这行C代码是什么意思?

我正在将一些C代码转换为Delphi。谁能给我解释一下这行是什么意思?nResult=((pBuffer[0]这是上下文的其余代码:USHORTUTIL_htons(USHORThostshort){PUCHARpBuffer;USHORTnResult;nResult=0;pBuffer=(PUCHAR)&hostshort;nResult=((pBuffer[0]提前致谢博扬 最佳答案 显然(所有那些以大写形式定义的都很难阅读)这些函数正在交换占用2或4个字节的值的内部字节顺序。例如:UTIL_htons(0x1234);/*r

c++ - 在 C++ 中实现 C 标准库

假设一个操作系统/内核是用C++编写的,并且不“做”任何纯C风格的东西,而是公开建立在成熟的C++标准库之上的C标准库。这可能吗?如果不是,为什么?PS:我知道C库是“C++的一部分”,但可以说它在内部基于基于C++的实现。小更新:看来我已经激起了一场关于我的规则“允许”什么的讨论。一般来说:C标准库实现应该尽可能使用C++/Right(tm)。我主要考虑算法和在幕后作用于静态类对象。我不是真的排除任何语言特性,而是试图将重点放在健全的C++实现上。关于setjmp示例,我看不出为什么这里的有效C(将使用其他在C++C库部分中预先实现或根本不使用任何其他库函数)会违反我的“规则”。如果

c++ - 确定 c/c++ 代码中内存泄漏的工具

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭8年前。Improvethisquestion在unix环境下,有没有什么工具可以很方便的分析代码,并提到在代码的某些部分有可能发生内存泄漏。HPUX/AIX/Solaris

c++ - 如何从 C++ 代码暂停 FFmpeg?

我正在编写一个VisualC++程序,它有代码调用ffmpeg.exe来转换视频文件。我想知道是否可以暂停/恢复ffmpeg从C++代码转换线程?LR. 最佳答案 您需要做的就是暂停和恢复ffmpeg子进程本身。主要问题是:没有SuspendProcessAPI函数。并且没有记录在案的或安全的方法来执行此操作。唯一简单的方法是通过SuspendThread/ResumeThread。参见thisarticle关于如何做的代码项目。 关于c++-如何从C++代码暂停FFmpeg?,我们在S

c++ - 用于实时编程的低级 C/C++ 网络概念?

我对实时编程很感兴趣,虽然我觉得我对算法和数据结构了解很多,但我觉得我不太了解如何尽快将数据输入计算机以便过程。你们中的任何人都可以指点我可以在谷歌上搜索的主题,以帮助我吗?我的大部分C书籍并没有真正涉及网络,而我的C++书籍将网络视为一个基本主题。例如,在两台计算机之间创建UDP连接不会有太大问题,但您可以通过哪些方式使连接最有效?提前致谢 最佳答案 只是让你知道:RealTime意味着你对你的申请有时间限制,它并不一定意味着“快速”或“快速”或“高效”。实时运行可能需要1小时,但只要限制不超过1小时就是实时的。至于网络——它本身

c++ - 将 Matlab 数组移植到 C/C++

我正在将一个matlab程序移植到C/C++。我有几个问题,但最重要的问题之一在这里:Matlabtreatsarrayswithanydimensionsame。假设我们有这样一个函数,functionresult=f(A,B,C)result=A+2*B+C;A、B和C可以是任意维度/大小的数组。我不是C/C++专业人士,但我想这在C中并不是一项简单而干净的工作。一个想法是使用void指针将数组传递给函数。那我应该如何处理维度和数组操作(+/*)?另一个想法是使用C++类。我也许可以编写一个模板类,其中包含所有必需的数组操作,例如(*、+、>、...)。但我相信这将是一项令人筋疲力

c++ - 如何在 C 函数中使用 std::vector

C函数期望缓冲区数组在运行时处于范围内。例如charvalues[x][y]C函数将填充缓冲区我想使用动态数组,这样我就不必对尺寸进行硬编码在这种情况下如何使用std::vector?需要说明的是,我使用的是C++。C函数包含在我无法修改的库中。 最佳答案 如果您只想将封装在std::vector中的动态数组传递给c例程,您可以传递一个指向底层数组头部的指针,如下所示:std::vectormyvector;//size-upmyvectorasneededfoo(&myvector[0]);//passapointertostar

c++ - C 与模块系统

在C语言的历史上,是否有过加入模块系统的实验?我知道没有制定最新标准的C++提案。我正在考虑更多与特定实现相关的东西,这些实现将模块系统添加为非标准功能。“模块系统”是指至少允许用户编写一个文件而不是一对.h/.c的东西。 最佳答案 Dprogramminglanguage是一种具有模块系统的类C++语言。我不知道有任何为纯C设计的模块系统。 关于c++-C与模块系统,我们在StackOverflow上找到一个类似的问题: https://stackoverf

c++ - 编译器可以/是否简化涉及函数的逻辑表达式?

一些计算bool值的函数:boola(){returntrueorfalse;}boolb(){//...}boolc(){//...}这种情况//somewhereelseif((a()&&b()&&c())||(a()&&b()&&!c())){doSomething();}也可以写成if(a()&&b()){doSomething();}编译器通常会优化它吗?那么纯bool值呢:if((a&&b&&c)||(a&&b&&!c)){doSomething();} 最佳答案 由于函数可能有副作用,因此不能以任何方式“优化”条件,因